package session08.action;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/*
    监听器实现的方式一：单独书写一个监听器类

    优点：
    1、没有额外的语法难度；
    2、可以实现一个事件源对应一个监听器类，从而达到职责单一

    缺点：
    1、由于监听器类是独立的，所以如果要操作除了事件源对象之外的其他
       组件或容器对象，必须传参；
    2、每个事件源都会对应一个单独的监听器类，会导致我们的类文件数目
       增加，不利用我们的工程文件管理。

 */
public class MyButtonListener  implements ActionListener {
    private AlertFrame frame;

    public MyButtonListener(AlertFrame frame){
        this.frame = frame;
    }

    //参数ActionEvent对象里面系统封装了本次事件发生的一些详细信息
    @Override
    public void actionPerformed(ActionEvent e) {
        JButton btn = (JButton) e.getSource();//得到事件源对象
        if(btn.getText().equals("警报")) {
            this.frame.getContentP().setBackground(Color.RED);
            this.frame.getRedBtn().setEnabled(false);
            this.frame.getGreenBtn().setEnabled(true);
        }else {
            this.frame.getContentP().setBackground(Color.GREEN);
            this.frame.getRedBtn().setEnabled(true);
            this.frame.getGreenBtn().setEnabled(false);
        }
    }
}
